package com.twetec.cms.model.vo.website;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;

/**
 * 文章模块--基本信息
 */
@ApiModel
public class BaseInfoVO implements Serializable {

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "Id", example = "12345646546")
    private Long id;

    @ApiModelProperty(value = "文章标题", example = "文章标题")
    private String title;

    @ApiModelProperty(value = "文章属性(文字WEN_ZI,图片TU_PIAN,视频SHI_PIN)", example = "WEN_ZI")
    private String attribute;

    @ApiModelProperty(value = "文章类型(图文咨询TU_WEN_ZI_XUN,下载文件XIA_ZAI_WEN_JIAN,跳转链接TIAO_ZHUAN_LIAN_JIE,公告咨询GONG_GAO_ZI_XUN)", example = "TU_WEN_ZI_XUN")
    private String type;

    @ApiModelProperty(value = "发布渠道(PC,H5,API)英文逗号隔开", example = "PC")
    private String releaseChannel;

    @ApiModelProperty(value = "所属栏目", example = "xx栏目")
    private Long columnId;

    @ApiModelProperty(value = "来源", example = "新浪微博")
    private String origin;

    @ApiModelProperty(value = "作者", example = "一个作家")
    private String author;

    @ApiModelProperty(value = "发布时间(10位时间戳)", example = "1324567891")
    private Date releaseTime;

    @ApiModelProperty(value = "公告开始时间(10位时间戳)", example = "1324567891")
    private Date gmtAnnouncementStart;

    @ApiModelProperty(value = "公告结束时间(10位时间戳)", example = "1324567891")
    private Date gmtAnnouncementEnd;

    @ApiModelProperty(value = "封面图(多张使用json形式存储)", example = "[{\"fileName\":\"icon_ghhy.png\",\"fileUrl\":\"http://10.23.222.147:8888/group1/M00/00/E6/Chfek2FkZB2EC0HqAAAAAHqO59E396.png\"}]")
    private String cover;

    @ApiModelProperty(value = "封面图类型(单图DAN_TU,多图DUO_TU,横图HENG_TU)", example = "DAN_TU")
    private String coverType;

    @ApiModelProperty(value = "摘要", example = "文章的摘要")
    private String summary;

    @ApiModelProperty(value = "文章内容（公告咨询和图文咨询使用文字，下载文件和跳转链接使用链接）", example = "本文内容由阿里云实名注册用户自发贡献，版权归原作者所有，阿里云开发者社区不拥有其著作权，亦不承担相应法律责任。具体规则请查")
    private String content;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getAttribute() {
        return attribute;
    }

    public void setAttribute(String attribute) {
        this.attribute = attribute;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getReleaseChannel() {
        return releaseChannel;
    }

    public void setReleaseChannel(String releaseChannel) {
        this.releaseChannel = releaseChannel;
    }

    public Long getColumnId() {
        return columnId;
    }

    public void setColumnId(Long columnId) {
        this.columnId = columnId;
    }

    public String getOrigin() {
        return origin;
    }

    public void setOrigin(String origin) {
        this.origin = origin;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public Date getReleaseTime() {
        return releaseTime;
    }

    public void setReleaseTime(Date releaseTime) {
        this.releaseTime = releaseTime;
    }

    public Date getGmtAnnouncementStart() {
        return gmtAnnouncementStart;
    }

    public void setGmtAnnouncementStart(Date gmtAnnouncementStart) {
        this.gmtAnnouncementStart = gmtAnnouncementStart;
    }

    public Date getGmtAnnouncementEnd() {
        return gmtAnnouncementEnd;
    }

    public void setGmtAnnouncementEnd(Date gmtAnnouncementEnd) {
        this.gmtAnnouncementEnd = gmtAnnouncementEnd;
    }

    public String getCover() {
        return cover;
    }

    public void setCover(String cover) {
        this.cover = cover;
    }

    public String getCoverType() {
        return coverType;
    }

    public void setCoverType(String coverType) {
        this.coverType = coverType;
    }

    public String getSummary() {
        return summary;
    }

    public void setSummary(String summary) {
        this.summary = summary;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    @Override
    public String toString() {
        return "BaseInfoVO{" +
                "id=" + id +
                ", title='" + title + '\'' +
                ", attribute='" + attribute + '\'' +
                ", type='" + type + '\'' +
                ", releaseChannel='" + releaseChannel + '\'' +
                ", columnId=" + columnId +
                ", origin='" + origin + '\'' +
                ", author='" + author + '\'' +
                ", releaseTime=" + releaseTime +
                ", gmtAnnouncementStart=" + gmtAnnouncementStart +
                ", gmtAnnouncementEnd=" + gmtAnnouncementEnd +
                ", cover='" + cover + '\'' +
                ", coverType='" + coverType + '\'' +
                ", summary='" + summary + '\'' +
                ", content='" + content + '\'' +
                '}';
    }
}
